public class SearchRange {
    //在排序数组中查找元素的第⼀个和最后⼀个位置
    public int[] code(int[] nums, int target) {
        int[] ret = new int[]{-1, -1};

        if (nums.length == 0){
            return ret;
        }

        int left = 0, right = nums.length - 1;
        while (left < right){
            int mid = left + (right - left) / 2;
            if (nums[mid] >= target){
                right = mid;
            }else{
                left = mid + 1;
            }
        }

        if (nums[left] == target){
            ret[0] = left;
        }

        left = 0;
        right = nums.length - 1;
        while (left < right){
            int mid = left + (right - left + 1) / 2;
            if (nums[mid] <= target){
                left = mid;
            }else{
                right = mid - 1;
            }
        }

        if (nums[left] == target){
            ret[1] = right;
        }

        return ret;
    }
}
